package main
import "fmt"

type Usber interface {
	start()
	stop()
}

// 如果接口里面有方法，必须要通过结构体或者自定义类型来实现这个接口
type Phone struct {
	Name string
}
// 手机要实现Usber中的所有方法
func (p Phone) start() {
	fmt.Println(p.Name + "开机")
}
func (p Phone) stop() {
	fmt.Println(p.Name + "关机")
}

type Camera struct {
	Name string
}
func (c Camera) start() {
	fmt.Println(c.Name + "开机")
}
func (c Camera) stop() {
	fmt.Println(c.Name + "关机")
}

func main() {
	var usb Usber = Phone{"华为手机"}
	fmt.Printf("usb的类型是：%T\n", usb)
	usb.start()
	usb.stop()

	var usb1 Usber = Camera{"佳能相机"}
	usb1.start()
	usb1.stop()
}